package com.cetcs.kmga.log.service;

import com.cetcs.kmga.log.util.ExcelUtil;
import com.cetcs.kmga.log.util.MySQLClient;
import com.google.common.collect.Lists;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 数据服务层
 *
 * @author xutao
 * @version V1.0 创建时间：2017-09-14 15:30
 *          Copyright 2017 by CETC
 */
public class LogService {


    private static final String TB_LOG_FIELD_FILE_PATH = "E:\\file\\项目文件\\km\\excel\\ywrz_query .xlsx";

    private static final String TB_LOG_FIELD_QUERY_PATH = "E:\\file\\项目文件\\km\\excel\\ywrzsj_query_field.xlsx";

    public void importTbLogField() throws Exception {
        List<String> titles = Lists.newArrayList();
        titles.add("tb_id");
        titles.add("field_name");
        titles.add("std_field_name");
        titles.add("field_info");
        titles.add("field_length");
        titles.add("field_type");
        titles.add("is_code");
        titles.add("is_ip");
        titles.add("is_list");
        titles.add("is_time");
        titles.add("is_show");
        titles.add("code_type");
        titles.add("is_used");
        titles.add("show_sort");
        File file = new File(TB_LOG_FIELD_FILE_PATH);
        InputStream inputStream = new FileInputStream(file);
        List<List<String>> ret = ExcelUtil.importExcelByIs(inputStream, titles, "TB_LOG_FEILD.xlsx");
        MySQLClient.addBathRecord("sdp_kmga_source_log_tb_fields", titles, ret);
    }

    /**
     * 保存查询条件
     *
     * @throws Exception
     */
    public void importLogQueryField() throws Exception {
        List<String> titles = Lists.newArrayList();
        titles.add("tb_id");
        titles.add("field_name");
        titles.add("std_field_name");
        titles.add("field_info");
        titles.add("field_length");
        titles.add("is_unit_key");
        titles.add("query_type");
        titles.add("show_type");
        titles.add("local_type");
        titles.add("row_key_sort");
        titles.add("is_ip");
        File file = new File(TB_LOG_FIELD_QUERY_PATH);
        InputStream inputStream = new FileInputStream(file);
        List<List<String>> ret = ExcelUtil.importExcelByIs(inputStream, titles, "TB_LOG_QUERY.xlsx");
        MySQLClient.addBathRecord("sdp_kmga_log_query_field", titles, ret);
    }


    /**
     * 创建日志表数据
     *
     * @param enTbName  数据库表名
     * @param code  类型代码
     * @param cnName    注释
     * @param rowKey
     * @param rowKeyLen
     * @param isSub     是否分表：1分表；0：不分表
     * @param subRule   分表规则：1：按天分；2、按月分；3：按年分
     * @param indexName 索引名称或数据库名称
     */
    public void importLogTb(String enTbName, String code, String cnName, String rowKey, String rowKeyLen, String isSub, Integer subRule, String indexName) {
        Map<String, Object> params = new HashMap<>();
        params.put("tb_en_name", enTbName);
        params.put("tb_code", code);
        params.put("tb_cn_name", cnName);
        params.put("row_key_field", rowKey);
        params.put("row_key_length", rowKeyLen);
        params.put("is_sub", isSub);
        params.put("index_name", indexName);
        if (subRule != null) {
            params.put("sub_rule", subRule);
        }
        String tbName = "sdp_kmga_source_log_tb";
        MySQLClient.addRecord(tbName, params);
    }
}
